home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / tspa2540.zip / TSUNTB.TST < prev    next >
Text File  |  1991-10-27  |  5KB  |  221 lines

  1. (* This is a test program for the TSUNTB.TPU unit
  2.    Updated 27-Jul-89, 18-Oct-89, 4-Jan-91, 27-Oct-91 *)
  3.  
  4. uses TSUNTB;
  5.  
  6. const loop = 200;   (* If you do want to make it quickly, change this to 1 *)
  7.  
  8. var time : real;    (* For timing the tests *)
  9.  
  10. procedure LOGO;
  11. begin
  12.   writeln;
  13.   writeln ('TSUNTB unit test by Prof. Timo Salmi');
  14.   writeln ('University of Vaasa, Finland, ts@chyde.uwasa.fi');
  15.   writeln;
  16. end;
  17.  
  18. (* Raise a positive number to a power the traditional way *)
  19. procedure TEST1;
  20. var i : integer;
  21.     a : real;
  22. begin
  23.   time := TIMERFN;
  24.   for i := 1 to loop do
  25.     a := POWERFN (2, 15);
  26.   time := TIMERFN - time;
  27.   writeln ('POWERFN 2^15 = ', a:0:0);
  28.   writeln ('Elapsed ', time:0:2);
  29.   writeln;
  30. end;
  31.  
  32. (* Raise a longint number to a power fast *)
  33. procedure TEST1A;
  34. var i : integer;
  35.     a : real;
  36. begin
  37.   time := TIMERFN;
  38.   for i := 1 to loop do
  39.     a := POWERLFN (-2, 15);
  40.   time := TIMERFN - time;
  41.   writeln ('POWERLFN -2^15 = ', a:0:0);
  42.   writeln ('Elapsed ', time:0:2);
  43.   writeln;
  44. end;  (* test1a *)
  45.  
  46. (* Raise any number to a power, the improved function *)
  47. procedure TEST2;
  48. var i : integer;
  49.     a : real;
  50. begin
  51.   time := TIMERFN;
  52.   for i := 1 to loop do
  53.     a := POWERGFN (-2, 15);
  54.   time := TIMERFN - time;
  55.   writeln ('POWERGFN -2^15 = ', a:0:0);
  56.   writeln ('Elapsed ', time:0:2);
  57.   writeln;
  58. end;  (* test2 *)
  59.  
  60. (* Raise two to a power, that is 2^exponent, very fast *)
  61. procedure TEST3;
  62. var i : integer;
  63.     a : word;
  64. begin
  65.   time := TIMERFN;
  66.   for i := 1 to loop do
  67.     a := TWOTOFN (15);
  68.   time := TIMERFN - time;
  69.   writeln ('TWOTOFN 2^15 = ', a);
  70.   writeln ('Elapsed ', time:0:2);
  71.   writeln;
  72. end;  (* test3 *)
  73.  
  74. (* Convert a binary string fast to a decimal word *)
  75. procedure TEST4;
  76. var i : integer;
  77.     a : word;
  78. begin
  79.   time := TIMERFN;
  80.   for i := 1 to loop do
  81.                    {123456789 123456}
  82.     a := BINDECFN ('1000000000000000');
  83.   time := TIMERFN - time;
  84.   writeln ('BINDECFN (''1000000000000000'') = ', a);
  85.   writeln ('Elapsed ', time:0:2);
  86.   writeln;
  87. end;  (* test4 *)
  88.  
  89. (* Convert a decimal word to a binary string fast *)
  90. procedure TEST5A;
  91. const x = 32768;
  92. var i : integer;
  93.     a : string;
  94. begin
  95.   time := TIMERFN;
  96.   for i := 1 to loop do
  97.     a := BINFN (x);
  98.   time := TIMERFN - time;
  99.   writeln ('BINFN (', x:0, ') = ', a);
  100.   writeln ('Elapsed ', time:0:2);
  101.   writeln;
  102. end;  (* test5a *)
  103.  
  104. (* Convert a decimal longint to a binary string fast *)
  105. procedure TEST5B;
  106. var i : integer;
  107.     a : string;
  108.     x : longint;
  109. begin
  110.   x := 5;
  111.   time := TIMERFN;
  112.   for i := 1 to loop do
  113.     a := LBINFN (x);
  114.   time := TIMERFN - time;
  115.   writeln ('LBINFN (', x:0, ') = ', a);
  116.   writeln ('Elapsed ', time:0:2);
  117.   writeln;
  118. end;  (* test5b *)
  119.  
  120. (* Convert a number from any base to any base (2-36) *)
  121. procedure TEST6;
  122. var i      : integer;
  123.     result : string;
  124.     x      : string;
  125.     b1, b2 : byte;
  126. begin
  127.   x := '32768';
  128.   b1 := 10;
  129.   b2 := 2;
  130.   time := TIMERFN;
  131.   for i := 1 to loop do
  132.     result := CONVBFN (x, b1, b2);
  133.   time := TIMERFN - time;
  134.   writeln ('CONVBFN (', x, ',', b1:0, ',', b2:0, ') = ', result);
  135.   writeln ('Elapsed ', time:0:2);
  136.   writeln;
  137. end;  (* test6 *)
  138.  
  139. (* Convert a hexadecimal string fast to a decimal word *)
  140. procedure TEST7;
  141. var i : integer;
  142.     d : word;
  143.     h : string;
  144. begin
  145.   h := 'F1a7';
  146.   time := TIMERFN;
  147.   for i := 1 to loop do
  148.     d := HEXDECFN (h);
  149.   time := TIMERFN - time;
  150.   writeln ('HEXDECFN (', h, ') = ', d);
  151.   writeln ('Elapsed ', time:0:2);
  152.   writeln;
  153. end;  (* test7 *)
  154.  
  155. (* Convert a decimal word to a hexadecimal string fast *)
  156. procedure TEST8A;
  157. var i : integer;
  158.     a : string;
  159.     d : word;
  160. begin
  161.   d := 32768;
  162.   time := TIMERFN;
  163.   for i := 1 to loop do
  164.     a := HEXFN (d);
  165.   time := TIMERFN - time;
  166.   writeln ('HEXFN (', d:0, ') = ', a);
  167.   writeln ('Elapsed ', time:0:2);
  168.   writeln;
  169. end;  (* test8A *)
  170.  
  171. (* Convert a decimal longint to a hexadecimal string fast *)
  172. procedure TEST8B;
  173. var i : integer;
  174.     a : string;
  175.     x : longint;
  176. begin
  177.   x := maxint+1;
  178.   time := TIMERFN;
  179.   for i := 1 to loop do
  180.     a := LHEXFN (x);
  181.   time := TIMERFN - time;
  182.   writeln ('LHEXFN (', x:0, ') = ', a);
  183.   writeln ('Elapsed ', time:0:2);
  184.   writeln;
  185. end;  (* test8b *)
  186.  
  187. procedure TEST9;
  188. var a : word;
  189. begin
  190.   a := BTEWRDFN (1, 2);
  191.   writeln (hi(a), ' ', lo(a));
  192.   writeln (a);
  193. end;  (* test9 *)
  194.  
  195. procedure TEST10;
  196. var a : longint;
  197. begin
  198.   a := WRDLNGFN (1, 2);
  199.   writeln (HIWORDFN(a), ' ', LOWORDFN(a));
  200.   writeln (a);
  201. end;  (* test10 *)
  202.  
  203. (* Main program
  204.    If you just want a particular test, comment the others away *)
  205. begin
  206.   LOGO;         {If you want pauses, insert readln where appropriate;}
  207.   TEST1;
  208.   TEST1A;
  209.   TEST2;
  210.   TEST3;
  211.   TEST4;
  212.   TEST5A;
  213.   TEST5B;
  214.   TEST6;
  215.   TEST7;
  216.   TEST8A;
  217.   TEST8B;
  218.   TEST9;
  219.   TEST10;
  220. end.  (* tsuntb.tst *)
  221.